gtkmain: Ensure to emit real GDK_LEAVE_NOTIFY events.
authorCarlos Garnacho <carlosg@gnome.org>
Tue, 19 Sep 2017 16:18:07 +0000 (18:18 +0200)
committerCarlos Garnacho <carlosg@gnome.org>
Tue, 19 Sep 2017 16:40:51 +0000 (18:40 +0200)
If we got a GDK_LEAVE_NOTIFY event from GDK, we would reset the
GtkPointerFocus, but the event would be silently consumed.

gtk/gtkmain.c

index 7162719aa716c5f5aa7e5dbb6989159ef6229847..40b939f4b3690585f4c563d9265464daf3b1713e 100644 (file)
@@ -1494,6 +1494,10 @@ handle_pointing_event (GdkEvent *event)
     case GDK_TOUCH_END:
     case GDK_TOUCH_CANCEL:
       old_target = update_pointer_focus_state (toplevel, event, NULL);
+
+      if (event->type == GDK_LEAVE_NOTIFY)
+        gtk_synthesize_crossing_events (toplevel, old_target, NULL,
+                                        event, event->crossing.mode);
       break;
     case GDK_ENTER_NOTIFY:
       if (event->crossing.mode == GDK_CROSSING_GRAB ||